/*
 * DataSet.java
 *
 * Created on December 10, 2007, 13:06 PM
 */
package OLDSTUFF.DataSetPackage;

import java.util.Collection;
import java.util.List;

/**
 * Holds data. A data point is a list of string and all data point are given an ID.
 * @author Martin Haulrich
 */
public interface DataSet {

    /**
     * Get all IDs from data set.
     * @return IDs for data points in the set.
     * @throws DataSetPackage.DataSetException
     */
    Collection<Integer> getIDs() throws DataSetException;

    /**
     * Get all data points in set.
     * @return Data points in set.
     * @throws DataSetPackage.DataSetException
     */
    Collection<List<String>> getData() throws DataSetException;

    /**
     * Adds data to the set
     * @return dataID ID for added data point
     * @param features features for added data point
     * @throws DataSetPackage.DataSetException
     */
    public Integer add(List<String> features) throws DataSetException;

    /**
     * Returns features.
     * @return Features for data point.
     * @param dataID ID for data point
     * @throws DataSetPackage.DataSetException
     */
    List<String> getFeatures(Integer dataID) throws DataSetException;

    /**
     * Removes data from the data set
     * @param dataID ID for data to remove
     * @throws DataSetPackage.DataSetException
     */
    void remove(Integer dataID) throws DataSetException;

    /**
     * Returns size of data set.
     * @return size of dataset.
     */
    int size();
}
